本地存储高可用
本地存储高可用技术
ZStack Cloud云平台的本地存储使用RAID技术保证数据冗余,RAID即独立磁盘冗余整列, 是由多个独立的高性能磁盘驱动器组成的磁盘子系统,从而提供比单个磁盘更高的存储性能和数据冗余的技术 ,RAID 中主要有三个关键概念和技术:镜像、数据条带和数据校验。
- 镜像:将数据复制到多个磁盘,一方面可以提高可靠性,另一方面可并发从两个或多个副本读取数据来提高读性能。显而易见,镜像的写性能要稍低, 确保数据正确地写到多个磁盘需要更多的时间消耗。
- 数据条带:将数据分片保存在多个不同的磁盘,多个数据分片共同组成一个完整数据副本,这与镜像的多个副本是不同的,它通常用于性能考虑。数据条带具有更高的并发粒度,当访问数据时,可以同时对位于不同磁盘上数据进行读写操作, 从而获得非常可观的 I/O 性能提升 。
- 数据校验:利用冗余数据进行数据错误检测和修复,冗余数据通常采用海明码、异或操作等算法来计算获得。利用校验功能,可以很大程度上提高磁盘阵列的可靠性、鲁棒性和容错能力。
不同等级的 RAID 采用一个或多个以上的三种技术,来获得不同的数据可靠性、可用性和 I/O 性能。至于设计何种 RAID (甚至新的等级或类型)或采用何种模式的 RAID ,需要在深入理解系统需求的前提下进行合理选择,综合评估可靠性、性能和成本来进行折中的选择,常见的RAID分为0、1、3、5、6、01、10、50等等,ZStack本地存储RAID的策略推荐使用RAID5或RAID10来实现本地存储高可用。
- RAID5: 在不同磁盘上的同级数据块同样使用 XOR 校验,结果存储在校验盘中。 校验数据分布在阵列中的所有磁盘上,而没有采用专门的校验磁盘。对于数据和校验数据,它们的写操作可以同时发生在完全不同的磁盘上。
- RAID10:实际是将RAID 1和RAID 0标准结合的产物,在连续地以位或字节为单位分割数据并且并行读/写多个磁盘的同时,为每一块磁盘作磁盘镜像进行冗余。同时拥有RAID 0的超凡速度和RAID 1的数据高可靠性,由于利用了RAID 0极高的读写效率和RAID 1较高的数据保护、恢复能力。
本地存储的应用
1. 对所有提供本地存储的服务器通过BIOS或带外管理配置RAID5或者RAID10。
2. 配置完RAID后在计算节点执行以下命令挂载磁盘。
[root@localhost ~]# parted /dev/sda mklabel gpt #分区
[root@localhost ~]# mkfs.xfs -f -i size=512 -l size=128m,lazy-count=1 -d agcount=16 /dev/sda #格式化sda
[root@localhost ~]# chmod +x /etc/rc.d/rc.local #添加rc.local执行权限
[root@localhost ~]# mkdir /zstack_ps -p #创建本地存储目录
[root@localhost ~]# ll /dev/disk/by-uuid/ #获取磁盘UUID
[root@localhost ~]# mount /dev/disk/by-uuid/XXXXXXXXXXXXX /zstack_ps #挂载磁盘
[root@localhost ~]# echo sleep 5 >> /etc/rc.d/rc.local #添加睡眠时间
[root@localhost ~]# echo mount /dev/disk/by-uuid/XXXXXXXXXXXXX /zstack_ps >> /etc/rc.d/rc.local #配置开机自动挂载
[root@localhost ~]# df –h #查询挂载详情
3. 登录云平台在资源中心>硬件设施>主存储中添加LocalStorage类型的主存储。